Static-Analysis Assisted Dynamic Verification of MPI Waitany Programs (Poster Abstract)

نویسندگان

  • Sarvani S. Vakkalanka
  • Grzegorz Szubzda
  • Anh Vo
  • Ganesh Gopalakrishnan
  • Robert Michael Kirby
  • Rajeev Thakur
چکیده

Overview: It is well known that the number of schedules (interleavings) of a concurrent program grows exponentially with the number of processes. Our previous work has demonstrated the advantages of an MPI-specific dynamic partial order reduction (DPOR, [5]) algorithm called POE in a tool called ISP [1,2,3] in dramatically reducing the number of interleavings during formal dynamic verification. Higher degrees of interleaving reduction were achieved when the programs were deterministic. In this work, we consider the problem of verifying MPI using MPI_Waitany (and related operations wait/test some/all). Such programs potentially have a higher degree of non-determinism. For such programs, POE can become ineffective, as shown momentarily. To solve this problem, we employ static analysis (supported by ROSE [4]) in a supporting role to POE to determine the extent to which the out parameters of MPI_Waitany can affect subsequent control flow statements. This informs ISP’s scheduler to exert even more intelligent backtrack/replay control. Illustration: Consider the MPI example shown in Figure 1(a). The MPI code for rank 0 (lines 1− 12) issues two MPI_Irecvs (lines 2− 3) and later invokes a MPI_Waitany (line 5) on the request handles returned by the MPI_Irecvs. The code in lines 6 − 10 will execute along code paths determined by the value of the done variable (recall that this variable represents the index into the request array returned by MPI_Waitany). For sound verification, ISP must ensure that a sufficient number of values of the done variable are returned. In this example, done = 0 and done = 1 are both feasible, since both the posted Irecv have matching sends available. Thus, the previous POE algorithm and the proposed one will both execute two interleavings, one for each value of done. Now consider the MPI program in Figure 1(b) – a slight modification of that in Figure 1(a). The MPI program issues two MPI_Waitanys in a for loop (lines 5−6). Our previous version of the POE algorithm would examine four interleavings (two interleavings for the first loop iteration, and two more interleavings under that for the second loop iteration). Under the new algorithm, this program would result in only two interleavings to accommodate the use of the received data. Since the done variable itself is not used, we will not need to create separate interleavings to account for possible control-flow changes based on it. Now, if

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Static-analysis Assisted Dynamic Verification to Efficiently Handle Waitany Non-determinism

We consider the problem of verifying MPI using MPI_Waitany (and related operations wait/test some/all). Such programs have a higher degree of non-determinism over which user-written test harnesses cannot exert adequate control. This makes conventional MPI program testing even more ineffective. Our previous work has demonstrated the advantages of an MPI-specific dynamic partial order reduction a...

متن کامل

Static Verification of Message Passing Programs

Many industrial applications, including safety-critical ones, consist of several disjoint components that use message passing to communicate according to some protocol. These components are typically highly concurrent, since message exchanges may occur in any order. Developing correct message passing programs is therefore very challenging, which makes proving their correctness crucial [4]. A po...

متن کامل

Static Analysis of Communicating Processes Using Symbolic Transducers

We present a general model allowing static analysis based on abstract interpretation for systems of communicating processes. Our technique , inspired by Regular Model Checking, represents set of program states as lattice automata and programs semantics as symbolic transducers. This model can express dynamic creation/destruction of processes and communications. Using the abstract interpretation ...

متن کامل

Combined Static and Dynamic Analysis

Static analysis is usually faster than dynamic analysis but less precise. Therefore it is often desirable to retain information from static analysis for run-time verification, or to compare the results of both techniques. However, this requires writing two programs, which may not act identically under the same conditions. It would be desirable to share the same generic algorithm by static and d...

متن کامل

The Verification Grand Challenge and Abstract Interpretation

Interpretation is a theory of approximation of mathematical structures, in particular those involved in the semantic models of computer systems [4,10,11]. Abstract interpretation can be applied to the systematic construction of methods and effective algorithms to approximate undecidable or very complex problems in computer science. The scope of application is rather large e.g. from type inferen...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009